// 路由name对应的路由数据
export const nameComponentObj = {}

// 按钮权限数据
export const btnObj = {}

// 遍历menu文件夹下所有 index.js 文件
const menuContext = require.context("./", true, /index\.js$/)
menuContext.keys().forEach(filename => {
  if (filename.startsWith("./index")) {
    return
  }
  const routerModule = menuContext(filename)
  Object.assign(nameComponentObj, (routerModule.default || routerModule).nameComponentObj)
  Object.assign(btnObj, (routerModule.default || routerModule).btnObj)
})

// 页面接口权限标识
const pagePermissionOBj = {}
// 将上述菜单 整理成 数组 供菜单选择页面使用
export const menuNameList = []

const hiddenList = ["layout", "dashboard", "notFound"]
Object.keys(nameComponentObj).forEach(key => {
  if (hiddenList.includes(key)) {
    return
  }
  if (nameComponentObj[key]?.permissionIdentification) {
    pagePermissionOBj[key] = nameComponentObj[key].permissionIdentification
  }
  menuNameList.push(nameComponentObj[key])
})

// 暴露出 按钮权限数组  在配置菜单上供选择使用
export const btnList = []
// 所有按钮权限标识 包括列表接口
export let btnPermissionObj = {}
Object.keys(btnObj).forEach(key => {
  btnList.push(btnObj[key])
  btnPermissionObj[key] = btnObj[key].value
})

btnPermissionObj = {...btnPermissionObj, ...pagePermissionOBj}